import globals from 'globals';
import pluginJs from '@eslint/js';
import tseslint from 'typescript-eslint';
import pluginVue from 'eslint-plugin-vue';
import pluginPrettierRecommendedConfigs from 'eslint-plugin-prettier/recommended';
import parserVue from 'vue-eslint-parser';

import { readFileSync } from 'fs';
const fileUrl = new URL('./.eslintrc-auto-import.json', import.meta.url);
const esAuto = JSON.parse(readFileSync(fileUrl));

export default [
  // eslint 默认推荐规则
  pluginJs.configs.recommended,
  // ts 默认推荐规则
  ...tseslint.configs.recommended,
  // vue3 基础推荐规则
  ...pluginVue.configs['flat/recommended'],
  // prettier 默认推荐规则
  pluginPrettierRecommendedConfigs,
  {
    languageOptions: {
      globals: {
        ...globals.browser,
        ...globals.es2020,
        ...globals.node,
        ...esAuto.globals,
        project: true,
        acl: true,
        flow: true,
        application: true,
        form: true,
        oidc: true,
        organization: true,
      },
      ecmaVersion: 2020,
      parser: parserVue,
      parserOptions: {
        parser: tseslint.parser,
      },
    },
  },
  {
    ignores: ['public/', 'index.html'],
  },
];
